Determining fields for presentable files

ABSTRACT

Fields for presentable files can be determined by an application (i) based on a field type and at least one parameter of the fields and (ii) responsive to raw data and a separate transformation engine, even when the application is unaware of the mechanics of the separate transformation engine. In a described implementation for a given field, the field type indicates that the given field is to be evaluated based on raw data that is referenced by the at least one parameter of the given field. The transformation engine is applied to the referenced raw data to produce a result for the given field that is suitable for presentation. In an example implementation, the transformation engine includes multiples sets of presentation rules that may be selectively established for application to the fields. In an example embodiment, respective presentation rule subsets target respective types of raw data.

TECHNICAL FIELD

This disclosure relates in general to determining fields of apresentable file and in particular, by way of example but notlimitation, to utilizing information that is external to a presentablefile when determining fields of the presentable file.

BACKGROUND

Word processing documents, for example, can include embedded fields.Fields represent a portion of a document that is visibly represented bypresentation data based on a field type and at least one fieldparameter. The presentation data can therefore change in response tochanges in the value(s) of the at least one field parameter. There canbe different types of fields for different purposes. Examples include anumber of pages of a document, a name of the file of the document, thecurrent date/time, a number for a (e.g., paragraph, outline, page, etc.)numbering feature, and so forth.

When the presentation of a word processing document is updated, thepresentation data is likewise updated based on the at least oneparameter. For example, if there is a field for a number of pages of adocument, each time the document is updated for printing, the currentnumber of pages of the document is inserted as the presentation data atthe location of the embedded field.

With existing fields, the at least one field parameter pertains tointrinsically known or determinable information. For instance, the dateand/or time is intrinsically known by a computing system. Also, the filename and the internal numbering operations are intrinsicallydeterminable from the document itself. Consequently, existing embeddedfield technology is limited and inflexible.

Accordingly, there is a need for schemes, mechanisms, techniques, etc.that can increase the power, flexibility, and/or extensibility of fieldsthat are embedded in presentable files.

SUMMARY

Fields for presentable files can be determined by an application (i)based on a field type and at least one parameter of each of the fieldsand (ii) responsive to raw data and a transformation engine that isseparable from and external to the application, even when theapplication is unaware of the internal mechanics of the transformationengine. In a described implementation for a given field, the field typeindicates that the given field is to be evaluated based on raw data thatis referenced by the at least one parameter of the given field. Thetransformation engine is applied to the referenced raw data to produce aresult for the given field that is suitable for presentation. In anexample implementation, the transformation engine includes multiplessets of presentation rules that may be selectively established forapplication to the fields. In an example embodiment, respectivepresentation rule subsets target respective types of raw data. In anexample implementation, the fields comprise bibliographies and citationsto bibliographic sources, the raw data comprises bibliographic data forthe cited sources, the different sets of presentation rules comprisedifferent bibliographic formatting standards, and the respective typesof raw data comprise respective types of sources.

Other method, system, approach, apparatus, device, media, procedure,API, arrangement, etc. implementations are described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The same numbers are used throughout the drawings to reference likeand/or corresponding aspects, features, and components.

FIG. 1 is a block diagram example of a presented file includingpresentation data resulting from a field.

FIG. 2 is a block diagram example of a presentable file and anapplication that is capable of presenting the presentable file using rawdata and a transformation engine.

FIG. 3 is a flow diagram that illustrates an example of a method forpresenting a presentable file having an embedded field.

FIG. 4 is a block diagram of an example interpretation of an embeddedfield.

FIG. 5 is a block diagram of an example extraction of raw data for theembedded field.

FIG. 6 is a block diagram of an example transformation of the extractedraw data.

FIG. 7 is a block diagram of an example transformation engine.

FIG. 8 is a block diagram that provides bibliographic-related examplesfor the more general concepts and terms illustrated in FIGS. 1-7.

FIG. 9 illustrates an example of a computing (or general device)operating environment that is capable of (wholly or partially)implementing at least one aspect of determining fields for presentablefiles as described herein.

DETAILED DESCRIPTION Introduction

As described herein above, conventional embedded field technology islimited to field parameters that are determinable based onpredetermined, intrinsic information. On the other hand, schemes,mechanisms, techniques, etc. that are described herein below aredirected to determining fields for presentable files in a flexibleand/or extensible manner.

In an example described implementation, a field can be a transformreference field type. A transformed reference field type indicates thatreferenced raw data is to be transformed, and the transformed raw datais then presented as the presentation data result of the field. A set ofpresentation rules may be selected from a transformation engine so thatthe referenced raw data is presented in a desired manner.

The transformation engine is independent of the application presentingthe field, and the application is unaware of the specifics of theinternal mechanics (e.g., the presentation rules) of the transformationengine. Moreover, a user can independently create or modify atransformation engine without utilizing the application, relying on theapplication, or even understanding details on how the application is toapply the transformation engine, as long as the created transformationengine adheres to or comports with a schema as promulgated fortransformation engines generally. For example, using non-proprietary,open standards such as XML and XSLT enables a user to create, edit, etc.the raw data and the transformation engine, respectively, withoutinvolving the application.

Fields of a transform reference field type may be employed in a myriadof contexts. In an example context, a bibliographic feature employstransform reference field type schemes, mechanisms, techniques, etc. Rawdata contains one or more bibliographic sources, and the transformationengine includes at least one set of presentation rules. Eachpresentation rule can implement a documented approach for citingbibliographic sources. Additionally, bibliographies and citations can bequickly repurposed by changing the selected set of presentation rules.This can cause the presentation of each cited bibliographic source to bechanged accordingly.

To facilitate understanding, this description is separated into fivesections. A first section is related to FIGS. 1-3 and is entitled“General Example Implementations for Determining Fields”. A secondsection is related to FIGS. 4-7 and is entitled “Specific ExampleImplementations for Determining Fields”. A third section is related toFIG. 8 and is entitled “Bibliographic-Related Example Implementationsfor Determining Fields”. A fourth section is entitled “Conclusion”.There is also a fifth section that references FIG. 9 and is entitled“Example Operating Environment for Computer or Other Device”.

General Example Implementations for Determining Fields

FIG. 1 is a block diagram example of a presented file 102 havingpresentation data 106 resulting from a field 108. In a describedimplementation, presented file 102 comprises a data stream presentation104 including presentation data 106. Presented file 102 may be from apresentable file of any type. Example presentable file types include aword processing file, a spreadsheet file, a slideshow file, an emailfile, a browser file, a multimedia file, some combination thereof, andso forth. Thus, data stream presentation 104 and presentation data 106may comprise any number of symbols of any kind.

A data stream construction 110 for field 108 is illustrated. Data streamconstruction 110 may be represented as {(Field Type)(FieldParameter(s))|[Result]}. The “Field Type” indicates a field type of manypossible field types to which a given field 108 belongs. The “FieldParameter(s)” recite at least one field parameter that serves as anargument for the Field Type. The “Result” symbolizes the result of afunction characterized by a Field Type and Field Parameter(s) pair.

By way of example only, the field type may be a paragraph referencenumber with the field parameter being a pointer to the referencedparagraph having a number. The result is therefore the current paragraphnumber of the referenced paragraph. For certain field types, the fieldparameter may be empty or omitted when the field type alone providesinformation that is sufficient to determine the result.

A logical construction 112 for field 108 is illustrated as a blockdiagram. Field 108 includes function information 114 and result 120.Function information 114 includes the pair of field type 116 and one ormore parameters 118. When the function characterized by field type 116and parameters 118 is evaluated or otherwise determined, result 120 isproduced. When presented file 102 is updated, result 120 is presented aspresentation data 106 as part of data stream presentation 104.

FIG. 2 is a block diagram example of a presentable file 202 and anapplication 208 that is capable of presenting the presentable file 202using raw data 204 and a transformation engine 206. In a describedimplementation generally, application 208 determines result 120 of field108 based on field type 116 and at least one parameter 118 andresponsive to raw data 204 and transformation engine 206.

Presentable file 202 is the origin or underlying information forpresented file 102 (of FIG. 1). In other words, the information inpresentable file 202 enables an application to create data streampresentation 104 (of FIG. 1) when presentable file 202 is beingpresented. Presentable file 202 may be presented on a visual screen, ona print out, and so forth.

As illustrated, presentable file 202 includes data stream information210 and additional information 212. Data stream presentation 104 isproduced primarily from data stream information 210. Additionalinformation 212, if present, contains additional information that isusable for manipulating, presenting, or otherwise utilizing data streaminformation 210 and/or the overall presentable file 202. For example,additional information 212 may include properties information, a changehistory, etc. for presentable file 202. Moreover, additional information212 can contain all or a portion of raw data 204 and/or transformationengine 206 to enhance the portability of presentable file 202, as isdescribed further herein below with particular reference to FIG. 8.

Raw data 204 and transformation engine 206 are also illustrated in FIG.2. Raw data 204 includes data that is to be at least partially presentedas presentation data 106 (of FIG. 1) for field 108. Transformationengine 206 includes presentation rules (not explicitly shown in FIG. 2)that transform raw data 204 into result 120. Transformation engine 206,in an example implementation, complies with an open standard so thatindividual users may elect to modify or augment a transformation engineprovided by others or to create a new transformation engine withoutusing application 208 (which may be of any general application type,including a word processing program such as Microsoft® Word fromMicrosoft® Corporation). Examples of raw data 204 are described furtherherein below with particular reference to FIGS. 5 and 6, and examples oftransformation engine 206 (including presentation rules) are describedfurther herein below with particular reference to FIGS. 6 and 7. Also,the transformation is described further herein below with particularreference to FIGS. 6 and 7.

Application 208, in a described implementation, includes fieldinterpreter 214, raw data extractor 216, and raw data transformer 218.Field interpreter 214 is capable of interpreting field 108, especiallyfunction information 114. Raw data extractor 216 is capable ofextracting raw data from raw data 204 in accordance with a parameter 118that contains a reference to raw data 204. Raw data transformer 218 iscapable of transforming the extracted raw data in accordance with one ormore presentation rules of transformation engine 206 without being indirect control of the transformation.

Raw data transformer 218 is capable of applying transformation engine206 to the extracted data of raw data 204 without being aware of theinternal mechanics (including the specifics of any included presentationrules) of transformation engine 206. Hence, result 120 of field 108 canbe independent of application 208. A schema 220 is known to application208, and application 208 is adapted to interoperate with transformationengines 206 that adhere to/comport with schema 220. Schema 220 specifiesone or more formats for transformation engine 206. Consequently, as longas transformation engine 206 adheres to/comports with schema 220, rawdata transformer 218 is capable of applying transformation engine 206 toraw data 204 without being aware of the internal mechanics thereof. Itshould be understood that application 208 may also be capable ofindependently interpreting other (e.g., traditional) fields 108 withoutrelying on raw data 204 or a transformation engine 206.

As illustrated in the example block diagram of FIG. 2, raw data 204 andtransformation engine 206 are separate from presentable file 202 andapplication 208. By way of example, raw data 204 may be a separate file,such as a separate master raw data file. Also, transformation engine 206may be an independent file, a separate program, a plug-in module, anoperating system (OS) feature, and so forth. As noted above, however,all or a portion of raw data 204 and/or transformation engine 206 mayalternatively be included as part of additional information 212.

In fact, in a described implementation, at least a portion of raw data204 is stored as part of additional information 212, and at least aportion of transformation engine 206 may be utilized by application 208when transforming referenced raw data 204 to produce result 120. Withsuch an implementation, at least the relevant (e.g., referenced) rawdata of raw data 204 is transportable as part of presentable file 202.Consequently, a presentable file 202 may be e.g. emailed to a recipientwith the relevant raw data being included as part of presentable file202. Similarly, if the recipient has an application 208 that is expectedto access and properly present presentable file 202, the inclusion of atleast a portion of transformation engine 206 as a part of additionalinformation 212 ensures that presentable file 202 can be presented in amanner intended by its creator.

FIG. 3 is a flow diagram 300 that illustrates an example of a method forpresenting a presentable file having an embedded field. Flow diagram 300includes five (5) “primary” blocks 302-310 and six (6) “secondary”blocks. Although the actions of flow diagram 300 may be performed inother environments and with a variety of hardware and softwarecombinations, FIGS. 1 and 2 are used in particular to illustrate certainaspects and examples of the method. By way of example only, the actionsof flow diagram 300 may be performed by an application 208 on apresentable file 202 using raw data 204 and transformation engine 206.

At block 302, data stream information of a presentable file is processeduntil an embedded field is encountered. For example, data streaminformation 210 of presentable file 202 may be processed into datastream presentation 104 of presented file 102 until a field 108 isencountered.

At block 304, the field is interpreted. For example, field interpreter214 of application 208 may interpret field 108. More specifically, atblock 304(1), a field type is ascertained. For instance, fieldinterpreter 214 may ascertain field type 116 of function information114. At block 304(2), one or more parameters 118 are acquired. Forinstance, field interpreter 214 may acquire parameter(s) 118 of functioninformation 114.

In a described implementation, field type 116 comprises a transformreference field type 116. This indicates to field interpreter 214 that areference points to raw data, which is to be transformed prior topresentation. Thus, at least one parameter 118 comprises a reference toraw data 204. Another parameter 118 may identify all or part oftransformation engine 206. Alternatively, a transformation engine 206that is to be employed for a presentable file 202 may be identified (andoptionally contained) in the additional information 212. As anotherexample, transformation engine 206 may be identified by a global settingthat is set by or through application 208.

At block 306, raw data for the field is extracted. For example, raw dataextractor 216 of application 208 may extract raw data for field 108 fromraw data 204. More specifically, at block 306(1), raw data is locatedresponsive to acquired parameter(s). For instance, raw data extractor216 may locate raw data 204, and/or a portion thereof, responsive to atleast one parameter 118 that includes a reference to the raw data. Atblock 306(2), the located raw data is retrieved. For instance, raw dataextractor 216 may retrieve the located raw data from raw data 204.

At block 308, the extracted raw data is transformed. For example, rawdata transformer 218 of application 208 may cause the extracted raw dataof raw data 204 to be transformed responsive to the separatetransformation engine 206. More specifically, at block 308(1), therelevant transformation engine 206 is identified. For instance, raw datatransformer 218 may identify the relevant transformation engine 206,and/or the relevant presentation rules thereof, using at least oneparameter 118, using a transform identification (e.g., a transformationengine identifier) in additional information 212, using a global settingof application 208, and so forth. At block 308(2), the identifiedtransformation engine is applied to the retrieved raw data. Forinstance, raw data transformer 218 may apply the identifiedtransformation engine 206, including a set of presentation rulesthereof, to the retrieved raw data of raw data 204 to produce result120. Raw data transformer 218 can cause transformation engine 206 toperform this transformation without knowing any specifics about thecontents of transformation engine 206.

At block 310, the transformed raw data, or field result, is presented aspart of the data stream presentation of the presented file. For example,application 208 may present result 120, which comprises the transformedraw data, as presentation data 106 for field 108 as part of presentedfile 102. The actions of flow diagram 300 may be performed in ordersthat vary from those that are illustrated. For example, the transformingof block 308 may be performed prior to or completely or partiallyoverlapping with the extracting of block 306. Thus, in an exampleimplementation, only those portions of the raw data that are to remainafter any filtering need be fully extracted.

Specific Example Implementations for Determining Fields

FIG. 4 is a block diagram of an example interpretation of an embeddedfield 108. In a described implementation, a field 108 includes a fieldtype 116 and at least one parameter 118. As illustrated, field type 116comprises a transform reference 402 field type, and parameter(s) 118includes at least a raw data reference 404.

Field interpreter 214 ascertains that field type 116 is a transformreference field type 402 as indicated by arrow 408. As such, field 108is determined based on raw data reference 404 and responsive to (i) rawdata 204 (of FIG. 2) that is referenced by raw data reference 404 and(ii) transformation engine 206.

Field interpreter 214 provides raw data reference 404 to raw dataextractor 216 as indicated by arrow 410. Field interpreter 214 alsoprovides transform identification 406 to raw data transformer 218 asindicated by arrow 412. Three example locations at which transformidentification 406 may be found are illustrated. These examples includeparameter(s) 118, additional information 212, and application 208.However, transform identification 406 may alternatively be locatedwithin or in association with other component(s). Also, raw datatransformer 218 may alternatively be capable of independently acquiringtransform identification 406 from any location.

FIG. 5 is a block diagram of an example extraction of raw data 204 forthe embedded field. In a described implementation, raw data 204 includesone or more data items 502. As illustrated, raw data 204 includes “k”data items 502(1 . . . k): item #1 502(1), item #2 502(2) . . . item #k502(k). Each data item 502 corresponds to a data item type. As shown,data item #1 502(1) corresponds to data item type “θ”, data item #2502(2) corresponds to data item type “Σ”, and data item #k 502(k) alsocorresponds to data item type “θ”. Data item types are described furtherherein below with particular reference to FIGS. 6 and 7.

Data items 502 include one or more respective tag fields 504 andassociated respective data 506, which are referred to herein as tag-datacouplets. As illustrated, data item #k 502(k) includes “n” respectivetag fields 504 that are associated with “n” respective data entries 506.In other words, tag field #1 is associated with data entry #1, tag field#2 is associated with data entry #2, tag field #3 is associated withdata entry #3, and tag field #n is associated with data entry #n. Themanner in which tag fields 504 are utilized by raw data transformer 218is described further herein below with particular reference to FIG. 6.

As illustrated, raw data reference 404 references data item #k 502(k).Raw data reference 404 can comprise a link, a pointer, an address, auniversal resource locator, a uniform resource locator, some combinationthereof, and so forth. Raw data extractor 216 uses raw data reference404 to locate and then retrieve data item #k 502(k) as indicated byarrow portion 508. Data item #k 502(k), or at least a portion thereof,is then provided to raw data transformer 218 as indicated by arrowportion 510.

FIG. 6 is a block diagram of an example transformation of the extractedraw data 204. In a described implementation, raw data transformer 218applies data item #k 502(k) to transformation engine 206 as indicated byarrow 604. As illustrated, transformation engine 206 includes a filter,order, and/or format capability 602. The specifics of filter, order,and/or format capability 602 are unknown to raw data transformer 218.

Filter, order, and/or format capability 602 is adapted so as to filter,order, and/or format data item #k 502(k) with respect to tag fields 504,in accordance with a selected set of presentation rules, and responsiveto a data item type of data item #k 502(k). In this example case, theselected set of presentation rules pertaining to data item type “θ” isapplied to data item #k 502(k) because it is of data item type “θ”.

Generally, presentation rules can stipulate which tag fields 504 arefiltered out, how the remaining tag fields 504 are ordered, and how thesurviving data entries 506 are formatted. Specifically, tag-datacouplets (e.g., respective tag fields 504 that are associated withrespective data entries 506) may be filtered, ordered, and/or formatted.More specifically, one or more individual tag-data couplets may befiltered out (e.g., removed and/or excluded from presentation). Also,tag-data couplets may be reordered into a prescribed order. Furthermore,tag-data couplets may be formatted such that the presented text iscentered, bolded, italicized, underlined, spaced appropriately,capitalized, punctuated, some combination thereof, and so forth.

Thus, filter, order, and/or format capability 602 of transformationengine 206 produces result 120, which is presented as presentation data106. As illustrated in FIG. 6, the tag-data couplets from #1 to #n havebeen filtered out except for the tag-data couplets #1, #3, and #m asshown at result 120. These couplets have also been re-ordered asfollows: tag-data couplet #3, tag-data couplet #1, and tag-data couplet#m.

The data entries 506 may also be formatted individually or as a group toproduce the final appearance for presentation data 106. Although result120 is shown as including tag fields 504 in addition to data entries506, result 120 may alternatively be streamlined by omitting tag fields504 such that result 120 is effectively equivalent to presentation data106. Consequently, result 120 may be presented as presentation data 106without first stripping out tag fields 504.

FIG. 7 is a block diagram of an example transformation engine 206. In adescribed implementation, transformation engine 206 includes at leastone set of presentation rules 702. As illustrated, transformation engine206 includes four (4) sets of presentation rules 702: presentation rulesA 702(A), presentation rules B 702(B), presentation rules C 702(C), andpresentation rules D 702(D). However, transformation engine 206 mayalternatively have fewer or more than four sets of presentation rules702.

With reference to the set of presentation rules A 702(A), there is adifferent subset 704 of presentation rules for each data item type ofmultiple data item types. As illustrated, presentation rules A 702(A)includes rule subsets 704 that target data items of type Δ, type Σ, typeΘ . . . type Ω. The presentation rule subsets 704 for each data itemtype may include their own set of filter, order, and/or formatcapability 602. Consequently, data entries 506 that are associated withthe same kind of tag field 504 may be filtered, ordered, and/orformatted differently if they are part of data items 502 that correspondto different data item types. This is further explained by way ofexample in the following section with the bibliographic-relatedexamples.

Transform identification 406 (of FIG. 4) may identify an individual setof presentation rules 702 of a transformation engine 206. If the set ofpresentation rules 702 is globally established (e.g., by application 208or additional information 212), then fields 108 of the transformreference 402 field type are each presented in accordance with theglobally established set of presentation rules 702. Alternatively, theset of presentation rules 702 to be used may be established for eachfield (e.g., with a parameter 118), for each section or area of a file(e.g., also possibly identified in additional information 212), or inany other manner.

Although both sets of presentation rules A and B 702(A and B) asillustrated in the transformation engine 206 of FIG. 7 apparentlyinclude the same presentation rule subsets 704, presentation rulesubsets 704 may differ. For example, presentation rules C 702(C) doesnot include a presentation rules subset 704 for data items 502 of typeΔ, but it does have a presentation rules subset 704 for data items 502of type Φ. Also, presentation rules D 702(D) only includes presentationrule subsets 704 for data items 502 of types Δ, Σ, Θ, and Γ.Furthermore, a presentation rule subset 704 for a given data item typemay be exclusive to a single set of presentation rules 702. Othercombinations and permutations of presentation rule sets 702 andpresentation rule subsets 704 are possible.

Bibliographic-Related Example Implementations for Determining Fields

An example application for determining fields, in accordance withcertain implementations as described herein above, is in a bibliographiccontext. Bibliographic data for cited sources may be entered once, andthe bibliographic data may subsequently be used for footnotes, endnotes,and so forth. A user can retrieve bibliographic data for a citation orbibliography entry to a given source whenever that source data has beenentered.

Moreover, cited sources within a presentable file 202 are includedwithin data stream information 210 as fields 108 having a field type 116of transform reference 402. Accordingly, bibliographic data may beextracted from raw data 204. Additionally, the raw bibliographic data204 may be transformed in accordance with an established presentationrule 702. The presented file 102 may then be re-purposed merely beselecting a different presentation rule 702. In other words, the usercan insert a citation or bibliographic entry, pulling raw data (thesource data) and transforming it according to a documentation style suchas MLA or APA. After a citation or bibliographic entry is inserted, itcan be repurposed by selecting a different documentation style(transform).

FIG. 8 is a block diagram that provides bibliographic-related examplesfor the more general concepts and terms illustrated in FIGS. 1-7. Thebibliographic-related examples and realizations are annotated in theillustration of FIG. 8 with italicized text. FIG. 8 includes raw data204 and transformation engine 206. Although raw data 204 may beimplemented in various ways, in a described implementation raw data 204comprises an extensible markup language (XML) file or a portion of afile that is configured in accordance with XML. Similarly,transformation engine 206 comprises an extensible stylesheet language(XSLT) file or a portion of a file that is configured in accordance withXSLT in a described implementation. However, either may be realizedusing other mechanism(s). Using a non-proprietary, open standard such asXML and XSLT enables a user to create, edit, etc. raw data 204 and/ortransformation engine 206 without using application 208.

Transformation engine 206 (e.g., as an XSLT or other non-proprietaryfile) is installed and/or called by application 208. However,application 208 need not be used to create or modify a transformationengine 206. Instead, a user may utilize any program that is capable ofgenerating a file that adheres to or comports with the schema 220 thatspecifies available format(s) for transformation engine 206. Hence, atransformation engine 206 that is generated by an unknown file can beinstalled and/or called by application 208 to determine fields inpresentable files. For example, a word processing program realization ofapplication 208 may install or call any transformation engine 206 thatcomports with the specified schema 220, regardless of how thetransformation engine 206 was created.

In a described implementation, raw data 204 may comprise a masterbibliographic data file and/or a portion of additional information 212of presentable file 202. For example, a user may enter bibliographicdata directly into a master file and have cited portions thereof copiedinto additional information 212. Alternatively, a user may enterbibliographic data directly into additional information 212 (e.g., viaan application 208) and have the bibliographic data of the newly-enteredcitations copied into the master file for subsequent use. As notedabove, inclusion of bibliographic data in additional information 212 isan optional implementation.

Raw data 204 includes at least one data item 502. As illustrated in FIG.8, raw data 204 includes data item #k 502(k) of type θ. In abibliographic-related implementation, data item #k 502(k) comprises anindividual bibliographic source #k that is being cited, and the type θcomprises a source type such as a book. Other example bibliographicsource types include, but are not limited to: periodicals, journals,broadcast programs, conference proceedings, speeches, journal articles,magazine or newspaper articles, sound recordings, performances,theses/dissertations/reports, art works, musical compositions, internetsites, documents from internet sites, and so forth.

Data item #k 502(k) typically includes multiple entries. Specifically,there are respective data entries 506 that are associated withrespective tag fields 504. Tag field #n 504 is shown in this example asa title for the book that is the source for this data item 502.Consequently, the associated data entry #n 506 comprises the actualtitle of source #k. Although only one tag-data couplet is shown in FIG.8, there are typically multiple such couplets. Additional examplebibliographic-related realizations for tag fields 504 include, but arenot limited to: author, publication date, pages, publisher, chaptertitle, article title, volume, issue, edition, URL, performer, writer,artist, version, director, and so forth. The specific tag fields 504that are supported may optionally vary by data item type.

In a bibliographic-related implementation, transformation engine 206comprises one or more bibliographic formatting standards. Thus, eachpresentation rule 702 may be realized as an individual bibliographicformatting standard. As illustrated, presentation rules A 702(A) isrealized as a set of rules that transforms raw bibliographic data intobibliographic data that comports with the American PsychologicalAssociation (APA) rules of documentation style. Other examplebibliographic-related realizations for presentation rules 702 include,but are not limited to the following bibliographic standards: ModernLanguage Association (MLA), Chicago Manual of Style, Turabian,Author-Date, and so forth.

In such a bibliographic-related implementation, transformation engine206 can therefore be an XSLT for MLA, APA, etc. that is installed orcalled by a word processing application. Other XSLTs for otherbibliographic documentation styles can be created by users and theninstalled or called by the word processing application. Such othertransformation engine 206 realizations operate in conjunction with theword processing application as long as they are created so as to adhereto the specified schema 220. The word processing application need notunderstand the internal mechanics of a transformation engine, and theuser need not create or modify the transformation engine with the wordprocessing application.

Because presentation rules 702 tend to differ by source type, eachsource type has a corresponding item type presentation rule subset 704.Consequently, book citations may be formatted differently fromperiodical citations. As illustrated, item type Δ 704 is realized as apresentation rules subset 704 of APA that is targeted to transformingraw data for books into book citations that comport with the APA, anditem type Σ is realized as a presentation rules subset 704 of APA thatis targeted to transforming raw data for periodicals into periodicalcitations that comport with the APA.

In operation, parameters in a presentation rules subset 704 stipulatewhich tag fields 504 are to be present in result 120 as well as theirorder. They may also stipulate the appropriate formatting, includingcapitalization and punctuation. More specifically, the parametersstipulate which ones of data entries 506 are to be presented aspresentation data 106 of presented file 102.

The devices, actions, aspects, features, functions, procedures, modules,data structures, components, etc. of FIGS. 1-8 are illustrated indiagrams that are divided into multiple blocks. However, the order,interconnections, interrelationships, layout, etc. in which FIGS. 1-8are described and/or shown is not intended to be construed as alimitation, and any number of the blocks can be modified, combined,rearranged, augmented, omitted, etc. in any manner to implement one ormore systems, methods, devices, procedures, media, apparatuses, APIs,arrangements, etc. for determining fields for presentable files.Furthermore, although the description herein includes references tospecific implementations (including a general device of FIG. 9), theillustrated and/or described implementations can be realized in anysuitable hardware, software, firmware, or combination thereof and usingany field delimiter(s), field presentation update procedure(s), raw dataformat and/or organization(s), transformation engine format and/ororganization(s), application involvement level(s), and/or rawdata-transformation engine interaction mechanism(s), and so forth.

CONCLUSION

In a described implementation, a transformation engine is created inaccordance with a selected open standard (e.g., XSTL) so as to adhere toa given schema. The given schema is associated with a given application.The given schema specifies a format for transformation engines withwhich the given application is capable of interoperating.

Thus, the given application is adapted to apply the transformationengine to fields of a presentable file (e.g., by installing and/orcalling the transformation engine). The fields may be determined by thegiven application based on a field type and at least one parameter ofthe field, as well as responsive to raw data and the transformationengine. This determination may be effectuated by the application even ifthe application is unaware of the internal mechanics of thetransformation engine.

The transformation engine may be created, modified, etc. by a userwithout utilizing the given application. The creation and/ormodification is performed such that the resulting transformation enginecomports with the given schema. The user may utilize any program that iscapable of manipulating files for transformation engines of the selectedopen standard type.

By way of example only, the fields being determined can bebibliographic-related entries for a word processing document. The rawdata, which may be formatted in accordance with an open standard such asXML, may include bibliographic-related data. The transformation enginemay comprise one or more bibliographic citation styles, such as APA andMLA. A user may create his or her own bibliographic citation style ormodify a documented one without utilizing the word processingapplication. Regardless, the word processing application may determinebibliographic-related fields of the word processing document by applyinga transformation engine comprising at least one bibliographic citationstyle without the word processing application having to understanddetails of the internal mechanics of the transformation engine.

Example Operating Environment for Computer or Other Device

FIG. 9 illustrates an example computing (or general device) operatingenvironment 900 that is capable of (fully or partially) implementing atleast one system, device, apparatus, component, arrangement, protocol,approach, method, procedure, media, application programming interface(API), some combination thereof, etc. for determining fields forpresentable files as described herein. Operating environment 900 may beutilized in the computer and network architectures described below.

Example operating environment 900 is only one example of an environmentand is not intended to suggest any limitation as to the scope of use orfunctionality of the applicable device (including computer, networknode, entertainment device, mobile appliance, general electronic device,etc.) architectures. Neither should operating environment 900 (or thedevices thereof) be interpreted as having any dependency or requirementrelating to any one or to any combination of components as illustratedin FIG. 9.

Additionally, implementations for determining fields for presentablefiles may be realized with numerous other general purpose or specialpurpose device (including computing system) environments orconfigurations. Examples of well known devices, systems, environments,and/or configurations that may be suitable for use include, but are notlimited to, personal computers, server computers, thin clients, thickclients, personal digital assistants (PDAs) or mobile telephones,watches, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, set-top boxes, programmable consumerelectronics, video game machines, game consoles, portable or handheldgaming units, network PCs, videoconferencing equipment, minicomputers,mainframe computers, network nodes, distributed or multi-processingcomputing environments that include any of the above systems or devices,some combination thereof, and so forth.

Implementations for determining fields for presentable files may bedescribed in the general context of processor-executable instructions.Generally, processor-executable instructions include routines, programs,protocols, objects, functions, interfaces, components, data structures,etc. that perform and/or enable particular tasks and/or implementparticular abstract data types. Realizations of field determination forpresentable files, as described in certain implementations herein, mayalso be practiced in distributed processing environments where tasks areperformed by remotely-linked processing devices that are connectedthrough a communications link and/or network. Especially but notexclusively in a distributed computing environment, processor-executableinstructions may be located in separate storage media, executed bydifferent processors, and/or propagated over transmission media.

Example operating environment 900 includes a general-purpose computingdevice in the form of a computer 902, which may comprise any (e.g.,electronic) device with computing/processing capabilities. Thecomponents of computer 902 may include, but are not limited to, one ormore processors or processing units 904, a system memory 906, and asystem bus 908 that couples various system components includingprocessor 904 to system memory 906.

Processors 904 are not limited by the materials from which they areformed or the processing mechanisms employed therein. For example,processors 904 may be comprised of semiconductor(s) and/or transistors(e.g., electronic integrated circuits (ICs)). In such a context,processor-executable instructions may be electronically-executableinstructions. Alternatively, the mechanisms of or for processors 904,and thus of or for computer 902, may include, but are not limited to,quantum computing, optical computing, mechanical computing (e.g., usingnanotechnology), and so forth.

System bus 908 represents one or more of any of many types of wired orwireless bus structures, including a memory bus or memory controller, apoint-to-point connection, a switching fabric, a peripheral bus, anaccelerated graphics port, and a processor or local bus using any of avariety of bus architectures. By way of example, such architectures mayinclude an Industry Standard Architecture (ISA) bus, a Micro ChannelArchitecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video ElectronicsStandards Association (VESA) local bus, a Peripheral ComponentInterconnects (PCI) bus also known as a Mezzanine bus, some combinationthereof, and so forth.

Computer 902 typically includes a variety of processor-accessible media.Such media may be any available media that is accessible by computer 902or another (e.g., electronic) device, and it includes both volatile andnon-volatile media, removable and non-removable media, and storage andtransmission media.

System memory 906 includes processor-accessible storage media in theform of volatile memory, such as random access memory (RAM) 910, and/ornon-volatile memory, such as read only memory (ROM) 912. A basicinput/output system (BIOS) 914, containing the basic routines that helpto transfer information between elements within computer 902, such asduring start-up, is typically stored in ROM 912. RAM 910 typicallycontains data and/or program modules/instructions that are immediatelyaccessible to and/or being presently operated on by processing unit 904.

Computer 902 may also include other removable/non-removable and/orvolatile/non-volatile storage media. By way of example, FIG. 9illustrates a hard disk drive or disk drive array 916 for reading fromand writing to a (typically) non-removable, non-volatile magnetic media(not separately shown); a magnetic disk drive 918 for reading from andwriting to a (typically) removable, non-volatile magnetic disk 920(e.g., a “floppy disk”); and an optical disk drive 922 for reading fromand/or writing to a (typically) removable, non-volatile optical disk 924such as a CD, DVD, or other optical media. Hard disk drive 916, magneticdisk drive 918, and optical disk drive 922 are each connected to systembus 908 by one or more storage media interfaces 926. Alternatively, harddisk drive 916, magnetic disk drive 918, and optical disk drive 922 maybe connected to system bus 908 by one or more other separate or combinedinterfaces (not shown).

The disk drives and their associated processor-accessible media providenon-volatile storage of processor-executable instructions, such as datastructures, program modules, and other data for computer 902. Althoughexample computer 902 illustrates a hard disk 916, a removable magneticdisk 920, and a removable optical disk 924, it is to be appreciated thatother types of processor-accessible media may store instructions thatare accessible by a device, such as magnetic cassettes or other magneticstorage devices, flash memory, compact disks (CDs), digital versatiledisks (DVDs) or other optical storage, RAM, ROM, electrically-erasableprogrammable read-only memories (EEPROM), and so forth. Such media mayalso include so-called special purpose or hard-wired IC chips. In otherwords, any processor-accessible media may be utilized to realize thestorage media of the example operating environment 900.

Any number of program modules (or other units or sets ofprocessor-executable instructions) may be stored on hard disk 916,magnetic disk 920, optical disk 924, ROM 912, and/or RAM 910, includingby way of general example, an operating system 928, one or moreapplication programs 930, other program modules 932, and program data934. These processor-executable instructions may include, for example,one or more of: a presentable file 202 having embedded fields 108, rawdata 204, a transformation engine 206, an application 208 that iscapable of processing embedded fields 108, some combination thereof, andso forth.

A user may enter commands and/or information into computer 902 via inputdevices such as a keyboard 936 and a pointing device 938 (e.g., a“mouse”). Other input devices 940 (not shown specifically) may include amicrophone, joystick, game pad, satellite dish, serial port, videocamera, scanner, and/or the like. These and other input devices areconnected to processing unit 904 via input/output interfaces 942 thatare coupled to system bus 908. However, input devices and/or outputdevices may instead be connected by other interface and bus structures,such as a parallel port, a game port, a universal serial bus (USB) port,an infrared port, an IEEE 1394 (“Firewire”) interface, an IEEE 802.11wireless interface, a Bluetooth® wireless interface, and so forth.

A monitor/view screen 944 or other type of display device may also beconnected to system bus 908 via an interface, such as a video adapter946. Video adapter 946 (or another component) may be or may include agraphics card for processing graphics-intensive calculations and forhandling demanding display requirements. Typically, a graphics cardincludes a graphics processing unit (GPU), video RAM (VRAM), etc. tofacilitate the expeditious display of graphics and performance ofgraphics operations. In addition to monitor 944, other output peripheraldevices may include components such as speakers (not shown) and aprinter 948, which may be connected to computer 902 via input/outputinterfaces 942.

Computer 902 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computingdevice 950. By way of example, remote computing device 950 may be aperipheral device, a personal computer, a portable computer (e.g.,laptop computer, tablet computer, PDA, mobile station, etc.), a palm orpocket-sized computer, a watch, a gaming device, a server, a router, anetwork computer, a peer device, another network node, or another devicetype as listed above, and so forth. However, remote computing device 950is illustrated as a portable computer that may include many or all ofthe elements and features described herein with respect to computer 902.

Logical connections between computer 902 and remote computer 950 aredepicted as a local area network (LAN) 952 and a general wide areanetwork (WAN) 954. Such networking environments are commonplace inoffices, enterprise-wide computer networks, intranets, the Internet,fixed and mobile telephone networks, ad-hoc and infrastructure wirelessnetworks, mesh networks, other wireless networks, gaming networks, somecombination thereof, and so forth. Such networks and logical andphysical communications connections are additional examples oftransmission media.

When implemented in a LAN networking environment, computer 902 isusually connected to LAN 952 via a network interface or adapter 956.When implemented in a WAN networking environment, computer 902 typicallyincludes a modem 958 or other component for establishing communicationsover WAN 954. Modem 958, which may be internal or external to computer902, may be connected to system bus 908 via input/output interfaces 942or any other appropriate mechanism(s). It is to be appreciated that theillustrated network connections are examples and that other manners forestablishing communication link(s) between computers 902 and 950 may beemployed.

In a networked environment, such as that illustrated with operatingenvironment 900, program modules or other instructions that are depictedrelative to computer 902, or portions thereof, may be fully or partiallystored in a remote media storage device. By way of example, remoteapplication programs 960 reside on a memory component of remote computer950 but may be usable or otherwise accessible via computer 902. Also,for purposes of illustration, application programs 930 and otherprocessor-executable instructions such as operating system 928 areillustrated herein as discrete blocks, but it is recognized that suchprograms, components, and other instructions reside at various times indifferent storage components of computing device 902 (and/or remotecomputing device 950) and are executed by processor(s) 904 of computer902 (and/or those of remote computing device 950).

Although systems, media, devices, methods, procedures, apparatuses,techniques, schemes, approaches, procedures, arrangements, and otherimplementations have been described in language specific to structural,logical, algorithmic, and functional features and/or diagrams, it is tobe understood that the invention defined in the appended claims is notnecessarily limited to the specific features or diagrams described.Rather, the specific features and diagrams are disclosed as exemplaryforms of implementing the claimed invention.

1. A method for transforming bibliographic data via an application, themethod comprising: interpreting a field via a field interpreter by:ascertaining a field type of the field, the field type including atransform reference configured to indicate that a raw data referenceparameter points to raw data to be extracted by a raw data extractor andtransformed by a transformation engine prior to presentation to a user;and acquiring a plurality of parameters of the field, the plurality ofparameters including at least the raw data reference parameter and aparameter to identify the transformation engine; extracting, via the rawdata extractor, the raw data for the field from a first file portionresponsive to the interpreting, wherein the raw data is configured inaccordance with an extensible markup language (XML); transforming, viathe transformation engine, the raw data prior to presentation of thefield using a second file portion for presentation into a first citationstyle via a first set of presentation rules; and replacing the first setof presentation rules with a second set of presentation rules afterpresentation via the first citation style by using the second fileportion for presentation into a second citation style; wherein the firstfile portion and the second file portion are separate from theapplication and are part of a word processing document file thatcontains a change history including at least a record of previouschanges to the presentation rules; and wherein the field represents abibliographic citation for a source; the raw data includes bibliographicdata for the source; and transformed raw data produced by thetransforming comprises at least a portion of the bibliographic dataafter filtering, ordering, and formatting by the transforming.
 2. Themethod as recited in claim 1, further comprising: presenting thetransformed raw data as part of a data stream presentation of apresentable file; wherein the transforming is effectuated without directcontrol by the application; and wherein the first file portion and thesecond file portion each comprise a part of the presentable file.
 3. Themethod as recited in claim 1, wherein the interpreting comprises:ascertaining a field type of the field being interpreted; and acquiringat least one parameter of the field being interpreted.
 4. The method asrecited in claim 3, wherein the extracting comprises: locating the rawdata responsive to the acquired at least one parameter, the acquired atleast one parameter comprising a reference to the first file portionhaving the raw data; and retrieving at least a portion of the raw datafrom the first file portion as indicated by the reference to the rawdata.
 5. The method as recited in claim 1, wherein the transformingcomprises: identifying a transformation engine of the second fileportion; and applying the identified transformation engine to the rawdata to produce transformed raw data as presentation data for the field.6. The method as recited in claim 5, wherein the identifying comprises:acquiring an identification of the transformation engine from at leastone of: (i) at least one parameter of the field, (ii) additionalinformation in a file having the field embedded therein, (iii) a settingof an application performing the method, or (iv) an operating system onwhich the application is running.
 7. The method as recited in claim 1,wherein: the interpreting comprises: determining that a field type ofthe field indicates that referenced raw data is to be transformed priorto presentation of the field; and acquiring at least one parameter fromthe field, the at least one parameter comprising a reference to a dataitem of the raw data; the extracting comprises: retrieving at least aportion of the data item of the raw data from a location referenced bythe at least one parameter; and the transforming comprises: applying atransformation engine to the referenced data item of the raw data, thetransformation engine including multiple sets of presentation rules;wherein the application is unaware of internal mechanics of the multiplesets of presentation rules.
 8. The method as recited in claim 7, whereinthe applying comprises: applying a presentation rule subset that targetsa type of raw data corresponding to the referenced data item.
 9. One ormore processor-accessible storage media comprising processor-executableinstructions that include an application that is capable of processingembedded fields, the application adapted to: interpret a field by:ascertaining a field type of the field, the field type including atransform reference configured to indicate that a raw data referenceparameter points to raw data to be extracted by a raw data extractor andtransformed by a transformation engine prior to presentation to a user;and acquiring a plurality of parameters of the field, the plurality ofparameters including at least the raw data reference parameter and aparameter to identify the transformation engine; retrieve raw data, viathe raw data extractor, for a field of a file responsive to at least oneparameter of the field, the at least one parameter referencing the rawdata, the raw data being configured in accordance with an extensiblemarkup language (XML); transform the referenced raw data in accordancewith a selected set of bibliographic citation presentation rules of thetransformation engine without being aware of internal mechanics of theselected set of presentation rules, the transformation engine being partof a work processing file; establish the selected set of bibliographiccitation presentation rules of the transformation engine on a globallevel for at least one of the file or the application; and re-purposemultiple embedded fields of the file responsive to the user selection ofanother selected set of bibliographic citation presentation rules. 10.The one or more processor-accessible storage media as recited in claim9, wherein the referenced raw data comprises a data item of a particulardata item type, and the selected set of presentation rules includes aparticular presentation rule subset that targets the particular dataitem type; and wherein the application and/or the transformation engineis adapted to apply the particular presentation rule subset, whichtargets the particular data item type, to the referenced data item. 11.The one or more processor-accessible storage media as recited in claim9, wherein the application is capable of enabling a user to create anembedded field for the file, the embedded field comprising an indicationthat the embedded field is intended to be presented based on one or moreparameters of the embedded field and responsive to the selected set ofpresentation rules of the transformation engine; and wherein theapplication enables the user to cause the one or more parameters of theembedded field to reference a data item of the raw data.
 12. A devicecomprising: a processor; and memory coupled to the processor, the memorycomprising computer-program instructions executable by the processor,the instructions comprising: raw data comprising multiple data itemsthat include a particular data item being of a particular data itemtype, the raw data being configured in accordance with an extensiblemarkup language (XML); a presentable file having a field that includes afield type and at least one parameter, that references the particulardata item; and a field interpreter to (1) ascertain a field type of thefield, the field type including a transform reference configured toindicate that a raw data reference parameter points to the raw data tobe extracted by a raw data extractor and transformed by a transformationengine prior to presentation to a user; and (2) acquire a plurality ofparameters of the field, the plurality of parameters including at leastthe raw data reference parameter and a parameter to identify thetransformation engine; the transformation engine comprising multiplesets of bibliographic citation presentation rules, the multiple sets ofpresentation rules including at least one set of presentation ruleshaving a particular presentation rules subset that targets theparticular data item type, wherein the transformation engine isconfigured to repurpose a bibliography from a first citation style to asecond citation style by replacing a first set of bibliographicpresentation rules with a second set of bibliographic presentationrules, wherein the transformation engine exists as part of an operatingsystem and separately from an application that is capable of applyingthe transformation engine to at least the particular data item.
 13. Thedevice as recited in claim 12, wherein the transformation engine isconfigured in accordance with an extensible stylesheet language (XSLT).14. The device as recited in claim 12, wherein the field furtherincludes a result that is suitable for presentation, the resultrepresenting the particular data item after application of theparticular presentation rules subset that targets the particular dataitem type of the particular data item.
 15. The device as recited inclaim 12, wherein a filtering capability of the particular presentationrules subset is applied to the particular data item prior to extractionthereof such that filtered out tag-data couplets are not extracted bythe raw data extractor.
 16. The device as recited in claim 12, whereinthe transformation engine is capable of being modified without using theapplication.